
/**
 * Specifieke informatie voor de Docent wat een subklasse is van Person
 * 
 * @author Stephan Veenstra & Michel Jansma 
 * @version (2012.10.11)
 */
public class Docent extends Person implements DiscountCard {

    //Instantie variabelen van het type String
    private String afkorting, afdeling;
    //Klasse variabelen van het type boolean
    private static final boolean HAS_MAX_DISCOUNT   = true;
    //Klasse variabelen van het type double
    private static final double DISCOUNT_PERCENTAGE = 25,
                                MAX_DISCOUNT        = 1;
    
    /**
     * @method Docent
     * @params null
     * @info   Constructor van Docent class, welke geen parameters meekrijgt
     * @return null
     */
    public Docent() {
        //Call to super class
        super(109867, "Steve", "Mclaren", 'M', new int[]{ 10, 2, 1972 });
        //Initialiseren korting data
        super.setDiscountData(MAX_DISCOUNT, DISCOUNT_PERCENTAGE, HAS_MAX_DISCOUNT);
        //Initialiseer instantie variabele afkorting
        this.setAfkorting();
        //Initialiseer instantie variabele afdeling
        this.setAfdeling("Informatica");
    }

    /**
     * @method Docent
     * @params <int> BSN, <String> firstname, <String> lastname, <char> gender, <int[]> dateOfBirth, <String> afdeling
     * @info   Overloaded constructor van Docent class
     * @return null
     */
    public Docent(int BSN, String firstname, String lastname, char gender, int[]dateOfBirth, String afdeling) {
        //Call to super class
        super(BSN, firstname, lastname, gender, dateOfBirth);
        //Initialiseren korting data
        super.setDiscountData(MAX_DISCOUNT, DISCOUNT_PERCENTAGE, HAS_MAX_DISCOUNT);
        //Initialiseer instantie variabele afkorting
        this.setAfkorting();
        //Initialiseer instantie variabele afdeling
        this.setAfdeling(afdeling);
    }
    
    /**
     * Zet de afkorting voor de leraar
     * @param afkorting
     */
    public void setAfkorting() {
        this.afkorting = this.getLastname().substring(0,2) + this.getFirstname().substring(0,2);
    }
    
    /**
     * Zet de afdeling voor de leraar
     * @param afdeling
     */
    public void setAfdeling(String afdeling) {
        this.afdeling = afdeling;
    }
    
    /**
     * @return de afkorting voor deze docent.
     */
    public String getAfkorting() {
        return this.afkorting;
    }
    
    /**
     * @return de afdeling van deze docent
     */
    public String getAfdeling() {
        return this.afdeling;
    }
    
    /**
     * @method toString
     * @params null
     * @info   toont een overzicht van alle data, welke is ingevoerd voor de persoon en de docent
     * @return <String> data
     */
    @Override
    public String toString() {
        return super.toString() + (
            "Afkorting : " + this.getAfkorting() + "\n" + 
            "Afdeling  : " + this.getAfdeling()
        );
    }

}
